package de.dhbw.horb.inf2013.vierFarbenProblem.model.interfaces;

import java.awt.Color;

import de.dhbw.horb.inf2013.vierFarbenProblem.model.datatypes.ColoredVertex;

/**
 * The Interface ModelInterface.
 */
public interface ModelInterface {

	/**
	 * Adds the vertex.
	 * 
	 * @param vertex
	 *            the vertex
	 */
	public void addVertex(ColoredVertex vertex);

	/**
	 * Adds the edge.
	 * 
	 * @param vertex1
	 *            the vertex1
	 * @param vertex2
	 *            the vertex2
	 */
	public void addEdge(int vertex1, int vertex2);

	/**
	 * Gets the color.
	 * 
	 * @param id
	 *            the id
	 * @return the color
	 */
	public Color getColor(int id);

	/**
	 * Reset all.
	 */
	public void resetAll();

	/**
	 * Start.
	 */
	public void start();

	/**
	 * Adds the model listener.
	 * 
	 * @param modelListener
	 *            the model listener
	 */
	public void addModelListener(ModelListenerInterface modelListener);
}
